cat 指令可以預覽文件的內容,是個簡單好用的指令,但是它不會對不同的檔案類型提供語法高亮的預覽,因此看起來會有點吃力。
BAT 是個 cat 指令的加強版,它特別針對開發者的需求,導入了包含語法高亮、整合 Git 等功能,使開發者可以更輕鬆、方便地預覽程式碼。
使用 Homebrew 安裝 BAT :
brew install bat
安裝完成後,可以使用 bat 指令叫用。
bat 與 cat 的使用方式類似,在參數中輸入想要預覽的檔案路徑,就可以觀看預覽。
bat .editorconfig

這個例子我們可以看到語法的高亮顯示,並且在左邊有以符號表示 Git 狀態的標示。
如果加上 -A 參數,我們可以看到平常不會顯示的字元,例如空白或換行。
bat -A .editorconfig

如果想要同時預覽多個檔案,可以使用 glob 來替換指定的檔案路徑。
bat days/**/*.md
上例會將所有在 days 目錄下,不管階層地輸出預覽所有的 .md 檔案內容。
除了從檔案讀取內容外, bat 也提供 stdin 的輸入。
curl -s https://raw.githubusercontent.com/sharkdp/bat/master/CONTRIBUTING.md | bat
bat 會自動判斷內容的類型(只會以第一行判斷,例如 #!/bin/sh ),並提供相關的語法高亮,也可以使用 -l 指定格式。
curl -s https://raw.githubusercontent.com/sharkdp/bat/master/CONTRIBUTING.md | bat -l md
bat 可以與許多不同的工具整合,這裡介紹幾個常用的工具。
請確認已經安裝
fd。
fd 指令可以使用 -X (或 --exec-batch )提供搜尋結果的預覽功能:
fd -H -e js -X bat
上例會產生所有 js 檔案的預覽。
請確認已經安裝
ripgrep。
使用 batgrep 可以為 ripgrep 所搜尋的結果帶來更好的預覽效果。
在使用前須要先安裝 bat-extras ,這個工具提供許多工具與 BAT 的整合使用。
brew install eth-p/software/bat-extras
安裝完成後,我們就可以使用 batgrep 指令叫用 ripgrep 找尋結果並使用 bat 顯示預覽。
batgrep foo days/

cat 提供的檔案預覽功能,對於開發來說,較為簡單。bat 提供語法高亮與 Git 整合的預覽功能,對於開發者較為合適。bat -A 會顯示隱藏的字元,例如空白或換行。bat 還提供 stdin 的輸入方式。bat -l 可以指定語言高亮的目標。bat 可以與其他工具整合。
fd 與 bat 可以使用 -X 參數結合,讓我們可以預覽搜尋結果的檔案內容。ripgrep 與 bat 可以藉由 batgrep 工具整合,讓搜尋結果使用 bat 預覽。才走1/3,腳就麻了,
當一名工程師真的不容易啊,
工具這麼多,指令那麼繁雜,歹賺啊!
我要不要改行去賣芋仔冰?